/*parser grammar XMLParser;

options {
  language = Java;
  output = AST;
  tokenVocab = XMLexer;
  ASTLabelType = Arbolito;
}

element : startTag (element | TEXT^)* endTag;
startTag : OPENTAG! ID^ (attribute)* CLOSETAG!;
attribute : ID^ ATTR_EQ! ATTR_VALUE^;
endTag : ENDTAG! ID! CLOSETAG!;*/

parser grammar XMLParser;

options {
  language = Java;
  tokenVocab = XMLexer;
  output = AST;
  ASTLabelType = Arbolito;
}

xmldocument : biblioteca ;

biblioteca : BIBLIOTECA^ (libro)+ FIN_BIBLIOTECA! ;

libro : LIBRO^ titulo (autor)+ editorial FIN_LIBRO! ;

titulo : TITULO TEXT FIN_TITULO -> ^(TITULO TEXT);
autor : AUTOR TEXT FIN_AUTOR -> ^(AUTOR TEXT);
editorial : EDITORIAL TEXT FIN_EDITORIAL -> ^(EDITORIAL TEXT);